perm filename GEOMED.BGB[S,DOC]3 blob
sn#064654 filedate 1973-09-28 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00030 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 TITLE PAGE - GEOMED MANUAL.
C00005 00003 INTRODUCTION.
C00008 00004 COMMAND SUMMARY:
C00010 00005 COMMAND SUMMARY:
C00012 00006 COMMAND SUMMARY:
C00014 00007 PRIMER: INSTANT CUBE, TRANSLATION.
C00018 00008 PRIMER: CONTROL, META, AND META-CONTROL.
C00021 00009 PRIMER: ROTATION.
C00023 00010 PRIMER: DRAWING A CUBE.
C00027 00011 PRIMER: DRAWING A TORUS.
C00028 00012 EXTENDED COMMAND SCANNER.
C00029 00013 COMMAND LETTERS:
C00032 00014 COMMAND LETTERS:
C00034 00015 COMMAND LETTERS:
C00036 00016 COMMAND LETTERS:
C00038 00017 COMMAND LETTERS:
C00041 00018 COMMAND LETTERS:
C00043 00019 GROUP OF COMMANDS: EUCLIDEAN TRANSFORMATIONS.
C00047 00020 GROUP OF COMMANDS: STRENGTH OF TRANSFORMATION.
C00051 00021 GROUP OF COMMANDS: INPUT/OUTPUT.
C00054 00022 GROUP OF COMMANDS: SWITCHES.
C00056 00023 GROUP OF COMMANDS: LINK FOLLOWING.
C00059 00024 GROUP OF COMMANDS: LINK FOLLOWING.
C00060 00025 GROUP OF COMMANDS: DISPLAY CONTROL.
C00061 00026 COMMAND CHARACTERS:
C00063 00027 COMMAND CHARACTERS:
C00065 00028 COMMAND CHARACTERS:
C00067 00029 COMMAND CHARACTERS:
C00069 00030 COMMAND CHARACTERS:
C00070 ENDMK
C⊗;
TITLE PAGE - GEOMED MANUAL.
SAILON NUMBER 68. GEOMED MANUAL
STANFORD ARTIFICIAL INTELLIGENCE LABORATORY MAY 1973
OPERATING NOTE NUMBER 68.
GEOMED - GEOMETRIC EDITOR.
Bruce g. Baumgart
ABSTRACT:
This note explains the keyboard commands of GEOMED, a 3D
drawing program. Using GEOMED arbitrary polyhedra can be contructed
and viewed in perspective with hidden lines eliminated.
CONTENTS:
INTRODUCTION.
I. COMMAND SUMMARY.
II. PRIMER.
III. COMMANDS.
A. TOPOLOGY COMMANDS.
B. GEOMETRY COMMANDS.
C. NODE STRUCTURE COMMANDS.
D. CONTROL AND I/O COMMANDS.
IV. NODES.
This research was supported in part by the Advanced Research
Projects Agency of the Office of the Secretary of Defense under
Contract No. SD-183.
The views and conclusions contained in this document are those of
the author and should not be interpreted as necessarily representing
the official policies, either expressed or implied, of the Advanced
Research Project Agency or the United States Government.
INTRODUCTION.
This SAILON explains the keyboard commands of GEOMED, a 3D
drawing program. Using GEOMED, arbitrary polyhedron models can be
contructed and viewed in perspective with hidden lines eliminated.
The internal polyhedron representation is explained in AIM-179, "A
Winged Edge Polyhedron Representation". The internal primitives of
GEOMED are documented in an AIM titled "Geometric Modeling" (see
GEOMES.BGB[AIM,DOC])
I would like to warn the novice that GEOMED (on an absolute
scale) is not really a very good program and is far from being
finished. There are two causes for disappointment: first, geometric
drawing requires careful prior thought - for some reason people who
do not expect a text editor to generate a poem or a program by
merely "interactive" keyboard pounding; seem to think that GEOMED
should make what they want to see without them having to think about
it. The second cause of disappointment is that the program has not
been made very fool proof; so that blunders (or novel applications
of the commands) tend to be fatal.
The command summary comes at the beginning of this document
rather than at the end so that the program itself can always find
the summary on pages 4, 5 and 6 of this file; this document can be
accessed while using GEOMED by typing the "H" help command.
COMMAND SUMMARY:
α CONTROL KEY PREFIX.
β META KEY PREFIX.
ε META-CONTROL PREFIX.
: EUCLIDEAN TRANSFORMATION +X. TRANSLATION.
; EUCLIDEAN TRANSFORMATION -X. α ROTATION.
) EUCLIDEAN TRANSFORMATION +Y. β DILATION.
( EUCLIDEAN TRANSFORMATION -Y. ε REFLECTION.
* EUCLIDEAN TRANSFORMATION +Z.
- EUCLIDEAN TRANSFORMATION -Z.
/ HALVE STRENGTH.
\ DOUBLE STRENGTH.
! TRANSLATION DEFAULT SWITCH.
@ ROTATION DEFAULT SWITCH.
= DILATION DEFAULT SWITCH.
∃ REFLECTION DEFAULT.
π ACCEPT ROTATION DELTA.
λ ACCEPT TRANSLATION DELTA.
% ACCEPT DILATION DELTA STRENGTH.
∂ FLIP NODE DISPLAY SWITCH.
∀ DISABLE BODY OPERATIONS SWITCH.
_ STICKY DISPLAY MODE SWITCH.
↓ COPY PUSH. α↓ ROTATE PUSH.
↑ PADPDL POP. α↑ ROTATE POP.
↔ SWAP STACK (1ST ↔ 2ND)(1ST α↔ 3RD)(1ST β↔ LAST)(2ND ε↔ 3RD)
∩ FETCH DAD LINK,
∪ FETCH SON LINK,
⊂ FETCH BRO LINK.
⊃ FETCH SIS LINK.
< FETCH NFACE LINK.
> FETCH PFACE LINK.
≥ FETCH PED LINK.
≤ FETCH NED LINK.
∧ FETCH PVT LINK
∨ FETCH NVT LINK.
, CLOCKWISE LINK.
. COUNTER CLOCKWISE LINK.
⊗ FETCH UNIVERSE NODE.
← FETCH ALT LINK.
→ FETCH ALT2 LINK.
+ OTHER LINK.
COMMAND SUMMARY:
α∩ BODY INTERSECTION.
α∪ BODY UNION.
α¬ BODY SUBTRACTION.
¬ BODY EVERT.
$ MAKE CONVEX.
| INVERT EDGE PARITY.
0-9 SET-DIGIT COMMAND.
? INFORMATION PREFIX.
# TWENTY CRLF'S.
∞ INSTANT CUBE. α∞ INSTANT TORUS.
A ATTACH, βAXECNT.
B BODY RETRIEVAL.
C COPY, αC NOW CAMERA.
D DETACH, αDARKEN, βDUAL, εUNDARKEN.
E SWEEP WIRE.
F FRAME STEP SWITCH.
G GLUE COMMAND.
H HELP. αH UNHELP.
I INPUT B3D. αI INPUT CAMERA. βI INPUT CRE.
J JOIN VERTEX-VERTEX.
K KILL COMMANDS.
L LABEL LIGHTS SWITCH.
M MIDPOINT COMMAND.
N NAME BODY
O OUTPUT COMMANDS.
P OUTPUT PLOT FILE
Q FRAME ORIGIN SWITCH.
R ROTATION COMPLETION.
S SWEEP COMMANDS.
T CREATE/EDIT TEXT LABEL.
U
V MAKE VERTEX BODY.
W MAKE: W WORLD. αW WINDOW. βW CAMERA. εW IMAGE.
X EXIT GEOMED.
Y
Z EXECUTE MACRO, αZ CREATE/EDIT MACRO, βZ INPUT COMMAND FILE.
ALT OCCULT. αALT FRONT FACE. βALT ALL EDGES.
COMMAND SUMMARY:
TEXT EDIT COMMANDS:
System line edit commands enter line edit mode.
These are characters without control bits or
with meta bit (except altmode, return, linefeed,
and vertical tab), control D,I,K,S and rubout.
<CR> Forward 1 line
<VT> Backward 1 line
αε> Forward 4 lines
αε< Backward 4 lines
αε≥ Forward 16 lines
αε≤ Backward 16 lines
εD Delete a line
εI Enter line insert mode
αZ Concatenate next line with current line
αεE Return to GEOMED
αεV Update display
αM Invoke a macro
αN Take commands from text file
X EXTEND COMMANDS:
X CUBIC DX DY DZ MAKE CUBIC PRISM.
X BALL RADIUS M N MAKE SPHERE M LONGITUDES, N LATITUDES.
X CYLN RADIUS N DZ MAKE CYLINDER OF N-SIDES, HEIGHT DZ.
X COLOR 99R 99B 99G 99A COLOR RED, BLUE, GREEN, ALBEDO.
X NSHARP MARK ALL EDGES NOT SHARP
X IGEM INPUT GEM FILE
X OGEM OUTPUT GEM FILE
PRIMER: INSTANT CUBE, TRANSLATION.
This section is literally an operating manual; you are
supposed to be operating GEOMED as you read. I will tell you what
keys to type and you will type them to see for yourself what happens;
although an explaination is given later for each command, the
complexity of individual commandS tends to obscure their use in
sequences.
The system copy of GEOMED is started by typing "R GEOMED"
carriage return at a III display console. GEOMED will display a
window frame and type an asterisk and await single character
commands. Typing carriage returns will yield more asterisks showing
that GEOMED is alive and listening.
INSTANT CUBE.
Type the character "∞" to get a drawing of a cube.
Adjust the pots on the III so that the cube looks right.
TRANSLATION.
Type the character ":" to move the cube right (positive x axis).
Type the character ";" to move the cube left (negative x axis).
Type the character ")" to move the cube up (positive y axis).
Type the character "(" to move the cube down (negtive y axis).
Type the character "*" to move the cube nearer (positive z axis).
Type the character "-" to move the cube away (negative z axis).
Clearly these command characters are not mnemonics, they
were chosen because they do not require the TOP key and are
conviently grouped in pairs under one's right hand.
STRENGTH OF TRANSLATION.
The distance the cube is moved by a translation command is
called the strength of translation or TDEL. The value of TDEL is
displayed in the upper right corner of the screen and is initially
one foot. The strength of translation is halved by typing the command
character "/" or doubled by typing "\".
WORLD FRAME OF REFERENCE.
The direction the cube moved was with respect to the world
frame of reference which is a right handed coordinate system, the
initial camera is positioned looking down the Z axis at the world
origin. The world origin will be in the center of the display screen
a simulated sixteen feet away; and the positive world X axis will be
to your right; and the positive world Y axis will be up; until you
move the camera.
PRIMER: CONTROL, META, AND META-CONTROL.
Notice that the Stanford A.I. keyboard has four "shift" keys
labeled SHIFT, TOP, META & CONTROL. SHIFT only determines whether an
alphabetic letters is upper or lower case; GEOMED converts lower
case letters into upper so that the SHIFT key has no effect. The TOP
key allows two ASCII character codes to be on each physical key,
this doubling up on the physical keys is not important to GEOMED
since "TOP-E" can always be referred to as "@". Finally, of great
importance, the CONTROL and META keys add two extra bits to the
7-bit ASCII code, so that a 9-bit character is sent to GEOMED. In
this document the characters "α", "β" and "ε" will be used as
prefix abbreviations for CONTROL, META and META-CONTROL keying of a
character.
Furthermore, the GEOMED command scanner accepts the
characters "α", "β" and "ε" as prefix modifiers that will add the
appropriate control and meta bits to the next character. The
question mark character, explained immediately below, is the only
other prefix modifier character.
QUESTION MARK "?".
Typing the question mark charcter "?" followed by any
character will type a one line reminder of what commands are invoked
by that character.
PRIMER: ROTATION.
ROTATION.
The rotation command characters are the same as for
translation except you must hold the CONTROL key down or prefix the
command with an "α". Try rotating the instant cube about the X-axis
with "α:". The positive direction of rotation is counter-clockwise.
The negative direction of rotation is clockwise.
STRENGTH OF ROTATION.
The strength of rotation is named RDEL, the value of RDEL is
displayed in three formats in the upper right hand corner of the
screen: as a pi fraction; in degrees, minutes, seconds; and in
radians. The initial value of RDEL is π/4, 45 degrees, 0.785 radians.
Analogous to translation, the strength of rotation is halved or
doubled by "α/" and "α\" respectively.
ROTATION DEFAULT.
Since a sequence of rotations is quite common, there is a way
to make the CTRL key be sticky. The usual Euclidean transformation
default is translation world frame; but after typing the "@" command
character, the Euclidean default is rotation world frame. Translation
default is restored by typing "!". The state of the Euclidean
transformation default is displayed in the GEOMED status.
PRIMER: DRAWING A CUBE.
Starting with a fresh copy of GEOMED, type the command
letters in the second column to get the advertised results:
1. V Vertex body creation.
2. :) Position the vertex into the first quadrant.
3. S;; Make an edge and vertex and move left.
4. S(( Edge vertex down.
5. S:: Edge vertex right.
6. J↑ Join the first and last vertices of the wire.
7. * Pull the face lamina towards you.
8. S Sweep the square face into a very thin solid.
9. --↑ Move the face away from you giving the cube depth.
10. @/):! Rotate the cube to a more familiar position.
This example illustrates four commands that haven't been
mentioned yet:
"V" Vertex Body Creation.
"S" Sweep.
"J" Join two vertices with a new edge.
"↑" Pop the stack.
These commands take their arguments from and leave their results in a
push down stack of bodies, faces, edges and vertices. The contents of
the stack is displayed on the left hand side of the III screen.
The "V" command takes no arguments and pushs a brand new
body, face and vertex into the stack. This degenerate point
polyhedron satisfies the Euler equation F-E+V=2, 1-0+1=2, and is
always placed at the world origin.
The first three sweep commands in the example, sweep a vertex
polyhedron into a wire polyhedron by adding a new vertex and a new
edge; incidentally preserving Euler's equation as do all GEOMED
commands. The wire-sweep takes a Vertex argument, and returns the new
vertex. The new vertex has the same locus as the argument vertex.
After three sides of a square have been formed, the "J"
command creates a new face and a new edge between the first and last
vertex of the wire face. The wire-join case of the "J" command takes
a vertex argument and identifies it as the end of a wire and knows
enough to fetch the other end of that wire, as its second argument.
PRIMER: DRAWING A TORUS.
1. V:@ First Vertex.
2. S*S*S* Seven more vertices.
S*S*S*S*
3. J↑ Form Lamina.
4. !//: Position the lamina.
5. @S)S)S)S) Sweep the face around the Y-axis.
S)S)S)S)
6. ↓>G↑ Glue the ends of the torus together.
EXERCISES.
1. DRAW THE SOMA CUBES AS IN FIGURE.
2. DRAW A JACK AS IN FIGURE.
EXTENDED COMMAND SCANNER.
Extend commands are executed by typing "X" followed by the
first three letters (further letters are ignored) of a mnemonic,
followed by any necessary arguments. The arguments may be separated
by any reasonible delimiters: space, comma, tab, etc. The first
three extend commands provide easy creation of simple polyhedra.
X CUBIC deltax,deltay,deltaz
X BALL radius,M-longitudes,N-latitudes
X CYLN radius,N-sides,DZ-height
COMMAND LETTERS:
"A" - ATTACH.
This command attachs the body in the top of the stack as a
part of the body second in the stack. If the first two entities are
not bodies then this command is a no operation. Because of the
implementation, the parts structure is always kept a tree,
circularities and incest are prevented.
"αA" - ARROWHEADS.
This command labels the length of an edge with a double head
arrow such as in a mechanical drawing; a self explaining sub-command
loop allows the arrow to be positioned and scaled; the "αA" command
is finished by typing a "Y" for "Yes".
"βA" - AXECNT INCREMENT. (see switchs).
"B" - BODY GET.
This command will replace the edge, face, or vertex in the
top of the stack with the body to which it belongs.
"αB" - BODY RETRIEVAL.
"C" - COPY.
Copy whatever is in the top of the stack in a reasonible manner
and push it down.
"αC" - CAMERA GET.
Get the now camera node and push it in the stack.
"D" - DETACH.
Detachs a part from its parent; applies to bodies only.
"αD" - DARKEN.
Set the Darken bit of an edge. A dark edge does not display.
"βD" - DUAL.
Compute the face/vertex dual of a body; that is replace all
the faces with vertices and all the vertices with faces. This
command will turn dodecahedrons into icosahedrons.
"εD" - UNDARKEN.
Clear the Darken bit of an edge.
COMMAND LETTERS:
"E" - ESWEEP. (Obsolete - subsumed by sweep).
This command creates a new edge and a new vertex starting
from an old vertex. The E command requires two arguments, the top
argument is the old vertex and the second argument must be one of the
faces to which the vertex belongs. The new edge and vertex become
associated with the given face.
"αE" - UNDEFINED.
"βE" - UNDEFINED.
"εE" - EXIT.
Exit the GEOMED editor. Returns control to monitor level or
to user program level. GEOMED returns the entity at the top of its
stack.
"F" - FRAME STEP. (see switchs).
"αF" - SET FOCAL.
This command will type out the focal length in millimeters
of the "now" camera and will ask for a new value. Give a carriage
return or zero to indicate no change.
"βF" - FRAME STEP BACK. (see switchs).
"εF" - UNDEFINED.
"G" - GLUE TWO FACES TOGETHER.
This command takes two faces from the top of the pdl. The
faces must be nearly coincidant and of opposite orientation. The two
faces are deleted along with all the edges and vertices of one of
them. If there were two bodies, then one remains. A body glued to
itself forms a hole.
COMMAND LETTERS:
"H" - HELP.
This command allows the user to read this document a page at
a time while using GEOMED. Help starts by displaying page-4 and
waits for other desired page numbers; typing a carraige return will
exit the help with the display persisting, control carraige return
will exit the help with the display cleared.
"αH" - UNHELP.
Clear the HELP display glass.
"I" - INPUT COMMANDS. (See I/O group).
"J" - JOIN VERTICES.
This command creates a new face and a new edge. The J
command has two forms. The general form of the J command expects two
vertices of the same face to be given on the top of the pdl, and it
returns in their place a new edge and a new face with the edge on
top.
The wire form of the J command applies only to a face that
doesn't have a closed perimeter.
The wire J
command returns the other end of the wire in top and leaves the
second argument unchanged.
"K" - KILL.
This command takes the top body, face, edge or vertex and
deletes it in a reasonible manner.
"L" - TOGGLE LIGHTS SWITCH. (see switchs).
COMMAND LETTERS:
"M" - MIDPOINT.
This command takes an edge argument and creating a new edge
and a new vertex makes the appropriate modifications to the body and
returns a the midpoint vertex of the given edge.
"N" - NAME A BODY.
This command accept the next ten characters typed in as a
name for the body in the top of the stack; any characters can be
used in a name.
"O" - OUTPUT COMMANDS. (See I/O commands).
"P" - PLOT.
"Q" - QFLAG TOGGLE. (See switchs).
"R" - Rotational Solid Completion.
After a wire has been swept around, you have a shell of
rotation. To change a shell into a solid all that remains to be done
is do a series of J commands on the leading and lagging vertices of
the shell. The R command, using the NCNT to step around the pole
caps, calls the J-command for all the necessary pairs. The sweep face
is taken as an argument and nothing is returned.
COMMAND LETTERS:
"S" - SWEEP.
This command sweeps a face into either a sheet or a solid
depending on the NCNT. If the NCNT is zero, then SWEEP returns a new
face coincident with the given face and connected to it by new sweep
edges and rectangular sweep faces forming a prism. Furthermore, a β
sweep forms a pyramid on the given face and returns the peak vertex,
while α sweep and ε sweep form antiprisms. An antiprism is merely a
prism with the rectangular sweep faces split into triangles.
When the NCNT is non-zero, only the first NCNT edges of the
argument face's perimeter are swept into new faces. Thus NCNT new
faces are created and the argument face is returned somewhat more
complicated than before. See the SPHERE example to clarify sweeping
out a solid of rotation.
"T" - TEXT.
"αT" - TAKE A PICTURE.
"βT" - TRIANGULAR SWEEP PRISMOID CW. (obsolete).
"εT" - TRIANGULAR SWEEP PRISMOID CWW. (obsolete).
"U" - NO OPERATION.
COMMAND LETTERS:
"V" - VERTEX BODY CREATION.
This command creates a polyhedron consisting of one vertex
and one face. The vertex is placed at the world origin. The V
command takes no arguments and leaves the new body, face and vertex
on the stack with the vertex on top.
"W" - MAKE WINDOW IN NOW DISPLAY RING.
"αW" - MAKE WINDOW IN NEW DISPLAY RING.
"βW" - MAKE NEW WORLD.
"X" - EXTENDED COMMAND SCANNER. (see EXTEND COMMANDS).
"Y" - NO OPERATION.
"Z" - MACRO CALL.
Macros are actually bodies with one vertex with a text node
list containing the text of the macro; such bodies have a name or
numeral which may be typed after the Z command gives you a colon;
there are no dummy arguments and the macro string is run directly
thru the command scanner as it was given.
"αZ" - MACRO EDIT.
This command is for defining and for altering macro command
strings. The minature text editor is like E and is explained under
TEXT commands.
"βZ" - FILE CALL.
This command asks for a file name and then executes the string
of commands in that file.
GROUP OF COMMANDS: EUCLIDEAN TRANSFORMATIONS.
The Euclidean geometric transformations are translation, rotation,
dilation and reflection; these transformations do not affect the
topology of faces, edges and vertices. The top of the stack is
transformed by hitting one of the following Euclidean transform
characters:
: Transform in the positive direction wrt the X-axis.
; Transform in the negative direction wrt the X-axis.
) Transform in the positive direction wrt the Y-axis.
( Transform in the negative direction wrt the Y-axis.
* Transform in the positive direction wrt the Z-axis.
- Transform in the negative direction wrt the Z-axis.
Clearly these characters are not mnemonics, they were chosen because
they do not require the TOP key and are conveniently grouped in pairs
under one's right hand.
The transform is selected by keying the control bits or or prefixing
the command with a control key character of suffering a preselected
default Transform:
default - usually TRANSLATION.
α ROTATION.
β DILATION.
ε REFLECTION.
The Euclidean Transformation default selection characters are:
! TRANSLATION.
@ ROTATION.
= DILATION.
∃ REFLECTION.
Translation moves the top object in the direction specified
by one unit of translation strength. Similairly Rotation rotates
the top object about the axis specified by one unit of rotational
strength. Positive rotations are ccw and negative rotations are cw.
Dilations refer to a three state dilation axis selector.
Dilation state 1 causes dilation on the specified axis, dilation
state 2 causes dilation on the two axes not indicated, and dilation
state 3 causes dilation on all the axes. The dilation selector is
advanced by typing "A". The state of the dilation axis selector is
displayed as a digit 1, 2 or 3 just to the right of the dilation
strength's per cent sign in the editor status display at the upper
right of the III screen. And finally, Reflections act only on the
axis specified and always in the world frame of reference.
GROUP OF COMMANDS: STRENGTH OF TRANSFORMATION.
The strength of a Euclidean transformation can be halved or
doubled by keying the transform's control bits and by striking
a left or right square bracket respectively.
/ Halve a Transformation Strength.
\ Double a Transformation Strength.
The strength of a Euclidean Transformation can be set by keying the
Transform's control bits and by striking a digit from 0 to 9.
For Translation:
0 1/16 of a foot, A "binary inch".
4 One Foot.
9 32 Feet.
N Where 0 ≤ N ≤ 9 yield 2.0↑(N-4) feet,
but you only need to memorize the 0,4,9 in
order to keep your head straight.
For Rotation:
9 π/2
8 π/4
etc
For Dilation:
0 100%
1 10%
2 20%
etc
9 90%
The strengths of the Euclidean Transformations can be entered
numerically by typing λ,π or % followed by a numerical argument. In
command formats given below x & y are scanned as real numbers, while
n, m, d & s are scanned as integers. Integers can be typed in place
of reals with no ill affect, whereas reals typed for integers are
Fixed.
For Translation:
λx feet. Initially set to 1 foot.
λx' feet.
λx'y" feet and inches.
λy" inches.
For Rotation:
ππ/m pi fraction. Initially set to π/4.
πn/m pi fraction.
πx radians.
πd,m,s degrees, minutes, seconds of arc.
For Dilation:
%x 0.01 ≤ x ≤ 100.00. Divisions by zero are shunned.
Initial set to 75%
GROUP OF COMMANDS: INPUT/OUTPUT.
"I" input B3D file. "O" output B3D file.
"αI" input CAM file. "αO" output CAM file.
"βI" input CRE film. "βO" output TRI file.
"εI" input D3D file. "εO" output D3D file.
X IGEM input GEM file. X OGEM output GEM file.
"βZ" take commands from GEO file.
"P" output PLT file of current III buffer.
"I" and "O" are the commands for input and output. There are
three file formats for polyhedra named B3D, D3D, and GEM. The plain
"O" command will output a body (and all its parts) from the top of
the stack into a B3D file. The plain "I" command will input a body
(and all its parts) from a B3D file and will push it on the stack.
The "X IGEM" and "X OGEM" are extend commands that work like
"I" and "O", but are dumping and restoring more of the contents of
each body, face, edge and vertex for the sake of GEOMES (SAIL) users.
The "αI" and "αO" input and output CAM files to and from the
node of the "now" camera.
The D3D format is the "dump" mode format. On output, "εO",
the node space is compacted and the origin is subtracted off all
links ("un"-relocatation) and the whole node space is dumped out; on
input the space is read in and relocated.
The "βI" inputs a CRE film and places a film of perceived
CRE images on the "now"-camera's node. The "βO" command is for
outputing the "now"-predicted image into a TRI file (triangles) for
the sake of MKVID (make video) which does the scan line conversion
for synthesizing video images.
GROUP OF COMMANDS: SWITCHES.
switch commentary
Q - FRMORG
FRMORG affects world frame rotations.
TRUE * rotation about a world axis,
thru the world origin.
FALSE rotation about a parallel to a world axis,
thru the body origin.
FRMORG is flipped by the Q-command.
The state of FRMORG is indicated by an asterisked in the
Editor's Status Display. The asterisk is present when
FRMORG is true and absent when FRMORG is false.
F - FRAME
FRAME is a three state switch that affects translation,
rotation and dilation.
state-1 indicates World Frame of Reference.
state-2 indicates Body Frame of Reference.
state-3 indicates Relative Frame of Reference.
FRAME is incremented, modulo 3, by the F-command.
(and decremented modulo 3 by the βF command).
A - AXECNT
AXECNT affects only dilations.
state-1 indicates dilation only on the specified axis.
state-2 indicates dilation on the two axes not specified.
state-3 indicates dilation on all three axes.
The state of dilation is indicated by a digit to the right of
the dilation strength's percent sign in the GEOMED Status Display.
AXECNT is incremented, modulo 3, by the A-command.
GROUP OF COMMANDS: LINK FOLLOWING.
The GEOMED data structure is composed of 16 kinds of nodes:
FRAME EMPTY UNIVERSE SUN
CAMERA WORLD WINDOW IMAGE
TEXT XNODE YNODE ZNODE
BODY FACE EDGE VERTEX
The root of the data structure is the UNIVERSE node, which is
unique, and which can be pushed into the stack by hitting the "⊗"
command. Directly accessible from the UNIVERSE node, the user may
fetch the DISPLAY ring and the WORLD ring:
"∩" of the UNIVERSE returns the "now" WORLD.
"∪" of the UNIVERSE returns the "first" WORLD.
"." of the UNIVERSE returns the "now" display.
"," of the UNIVERSE returns the "first" display.
A display is not a node, but is rather a ring of windows. The
refresh subroutine GEODPY, refreshs the windows of the "now" display
ring.
"⊂" and "⊃" of a WINDOW travels the Window Ring of a display.
"." and "," of a WINDOW travels the Display Ring of the UNIVERSE.
Each world has at least one camera, one sun, and a ring of
bodies (which is initially empty).
"←" of a WORLD returns the "first" SUN.
"∩" of a WORLD returns the "now" CAMERA.
"∪" of a WORLD returns the "first" CAMERA.
"." and "," of a WORLD travels the World's Body Ring.
"⊂" and "⊃" of a WORLD travels the World Ring of the UNIVERSE.
Each camera points back to the world to which it belongs ("∪"); and
belongs to that worlds camera ring ("⊂" and "⊃"); and has
potentially two rings of images: the sythetic image ring (".") and
the perceived image ring (",").
GROUP OF COMMANDS: LINK FOLLOWING.
A polyhedral surface is composed of faces, edges and
vertices. Each particular face, edge, or vertex belongs to one and
only one body; and in turn each body has a ring of faces, a ring of
edges and a ring of vertices:
"<" and ">" of a body travels the Face Ring of that body.
"≤" and "≥" of a body travels the Edge Ring of that body.
"∨" and "∧" of a body travels the Vertex Ring of that body.
GROUP OF COMMANDS: DISPLAY CONTROL.
COMMAND CHARACTERS:
null NO OPERERATION.
"↓" COPY PUSH. (see stack commands).
"α↓" ROTATE PUSH. (see stack commands).
"β↓" UNDEFINED.
"ε↓" UNDEFINED.
"α" CONTROL KEY PREFIX.
This command forces the next command letter to be
interpreted as if it were hit with the control key; this
convention is for the sake of defining macros and command files.
"β" META KEY PREFIX.
"∧" FETCH PVT.
Get positive vertex of an edge. Or ring around the vertex ring.
"¬" BODY EVERT.
GEOMED polyhedra have an inside and an outside irrespective
of enclosing a finite volume; that is a thing that appears to be a
cube can either be a solid in space or a space in a solid. The EVERT
command turns solids into holes and holes into solids.
"α¬" BODY SUBTRACTION.
Subtract the top of the stack body from the body second in
the stack. Where subtraction means union of the evert of the TOP
with the SECOND.
"ε" META-CONTROL KEYS PREFIX.
"π" SET ROTATION STRENGTH.
"λ" SET TRANSLATION STRENGTH.
COMMAND CHARACTERS:
TAB NO OPERATION.
LF NO OPERATION.
VT NO OPERATION.
FF NO OPERATION.
CR ALMOST NO OPERATION.
Clears the iteration count and causes an asterisk to be
typed out.
"∞" INSTANT CUBE. (See Primer).
"α∞" INSTANT TORUS. (see Primer).
"∂" DATUM DISPLAY TOGGLE.
Causes the contents of the node at the top of the stack to
be displayed in the lower right hand corner of the screen. The LINK
following commands for the different words of the node are
indicated.
"⊂" FETCH BRO LINK.
"⊃" FETCH SIS LINK.
"∩" FETCH DAD LINK.
"α∩" BODY INTERSECTION.
"∪" FETCH SON LINK.
"α∪" BODY UNION.
"∀" Disable Body Transformations Switch. (for wizards only).
"∃" REFLECTION DEFAULT. (obsolete).
"⊗" FETCH UNIVERSE NODE.
"↔" SWAP FIRST AND SECOND ELEMENTS OF THE STACK.
"α↔" SWAP FIRST AND THIRD...
"β↔" SWAP FIRST AND LAST...
"ε↔" SWAP SECOND AND THIRD...
"_" STICKY DISPLAY MODES SWITCH.
"→" FETCH ALT2 LINK.
"~" TILDE NO OPERATION.
"≠" NO OPERATION.
COMMAND CHARACTERS:
"≤" FETCH NED LINK.
"≥" FETCH PED LINK.
"≡" STATUS DISPLAY TOGGLE.
The GEOMED status (the stack, tranformation strenght, etc.) at
the top of the screen are turned on and off by this command.
"α≡" TOGGLE NOW WINDOW'S DARKEN BIT.
This command will turn the window border on and off.
"∨" FETCH NVT LINK.
" " GEODPY REFRESH.
The spacebar will cause the current display to be refreshed.
"!" TRANSLATION DEFAULT.
""" DOUBLE QUOTE MARK - NO OPERATION.
Never, never shall this character be used for a command.
"#" TWENTY CRLF's.
Well actually three line feeds, for clearing the page printer.
"α#" ENTER DDT.
Enters DDT if it exists. The SYS versions of GEOMED never
have DDT; the versions GEOMED.DMP[GEM,HE] and G.DMP[GEM,BGB] will
usually have DDT; and a GEOMES core image has DDT depending on how
the compile and load was done. A DDT "αP" command will continue
execution in the GEOMED listen loop.
COMMAND CHARACTERS:
"$" - MAKE CONVEX.
This command may be applied to a face or a body. All the
faces referred to will be split into triangles.
"α$" - ESLURP.
"%" - SET DILATION STRENGTH.
"&" - NO OPERATION.
"'" - NO OPERATION.
"(" - EUCLIDEAN TRANSFORMATION -Y.
")" - EUCLIDEAN TRANSFORMATION +Y.
"*" - EUCLIDEAN TRANSFORMATION +Z.
"+" - FETCH OTHER.
"." - FETCH CLOCKWISE.
"-" - EUCLIDEAN TRANSFORMATION -Z.
"," - FETCH COUNTER CLOCKWISE.
"/" - HALVE Translation STRENGTH.
"α/" - HALVE Rotation STRENGTH.
"0123456789" - Set Digit Commands.
":" - EUCLIDEAN TRANSFORMATION +x.
";" - EUCLIDEAN TRANSFORMATION -X.
"<" - FETCH NFACE LINK.
"=" - DILATION DEFAULT SWITCH. (obsolete).
">" - FETCH PFACE LINK.
"?" - INFORMATION PREFIX.
"@" - ROTATION DEFAULT SWITCH.
"[" - NO OPERATION.
"\" - DOUBLE Translation STRENGTH.
"α\" - DOUBLE Rotation STRENGTH.
"]" - NO OPERATION.
"↑" - POP Stack.
"α↑" - ROTATE POP.
"←" - FETCH ALT LINK.
"`" - NO OPERATION.
COMMAND CHARACTERS:
"{" STEP + NOW DISPLAY.
"α{" STEP + NOW WORLD.
"β{" STEP + NOW CAMERA.
"|" INVERT AN EDGE.
ALT DISPLAY REFRESH with hidden lines eliminated.
αALT DISPLAY REFRESH with back side faces eliminated.
βALT DISPLAY REFRESH everything visible.
εALT DISPLAY REFRESH hidden line elimination diagonostics.
"}" STEP - NOW DISPLAY.
"α}" STEP - NOW WORLD.
"β}" STEP - NOW CAMERA.
RUBOUT NO OPERATION.